#pragma once

#include "poke_dialog_helper.h"
#include "poke_framework.h"
#include "afxwin.h"

// CPokeDlgMouseCtrl dialog
class CPokeDlgMouseCtrl : public CDialog, public M::Atom
{
    DECLARE_DYNAMIC(CPokeDlgMouseCtrl)

public:
    CPokeDlgMouseCtrl(CWnd* pParent = NULL);   // standard constructor
    virtual ~CPokeDlgMouseCtrl();

// Dialog Data
    enum { IDD = IDD_DIALOG_MOUSE_CONTROL };

protected:
    DISABLE_DIALOG_DEFAULT_ACTION;
    virtual BOOL OnInitDialog();
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    virtual M::String name() const { return PAN_DLG_MOUSE_CTRL; }
    virtual bool OnExecute(const M::AtomEndPoint &oSrcAtom, int nFuncId, void *pParams, void *pIOParams);
    virtual bool OnEvent(const M::AtomEndPoint &oSrcAtom, int nEventId, void *pParams);
    bool OnExecuteHotkey(int nHotkeyId);

    DECLARE_MESSAGE_MAP()

protected:
    BOOL PostMouseMsg(DWORD msg);

private:
    int m_nMouseWheelDelta;
    int m_nMouseType;

public:
    afx_msg void OnBnClickedButtonMousemove();
    afx_msg void OnBnClickedButtonMousewheel();
    afx_msg void OnBnClickedButtonWmMouseDown();
    afx_msg void OnBnClickedButtonWmMouseUp();
    afx_msg void OnBnClickedButtonWmMouseDblclk();
    afx_msg void OnBnClickedButtonMouseClick();
    afx_msg void OnBnClickedButtonMouseDblclick();
    afx_msg void OnBnClickedButtonMouseleave();
};
